{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 通过Python绘制炫酷的3D地图"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据以2019年全国各地区GDP为例\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Map3D\n",
    "from pyecharts.globals import ChartType\n",
    "from pyecharts.commons.utils import JsCode\n",
    "\n",
    "\n",
    "#数组里面分别代表：经纬度，2019年全国各地区GDP数值\n",
    "example_data = [\n",
    "    (\"黑龙江\", [127.9688, 45.368, 13612.68]),\n",
    "    (\"内蒙古\", [110.3467, 41.4899, 17212.53]),\n",
    "    (\"吉林\", [125.8154, 44.2584, 11726.82]),\n",
    "    (\"辽宁\", [123.1238, 42.1216, 24909.45]),\n",
    "    (\"河北\", [114.4995, 38.1006, 35104.52]),\n",
    "    (\"天津\", [117.4219, 39.4189, 14104.28]),\n",
    "    (\"山西\", [112.3352, 37.9413, 17026.68]),\n",
    "    (\"陕西\", [109.1162, 34.2004, 25793.17]),\n",
    "    (\"甘肃\", [103.5901, 36.3043, 8718.3]),\n",
    "    (\"宁夏\", [106.3586, 38.1775, 3748.48]),\n",
    "    (\"青海\", [101.4038, 36.8207, 2965.95]),\n",
    "    (\"新疆\", [87.9236, 43.5883, 13597.11]),\n",
    "    (\"西藏\", [91.11, 29.97, 1697.82]),\n",
    "    (\"四川\", [103.9526, 30.7617, 46615.82]),\n",
    "    (\"重庆\", [108.384366, 30.439702, 23605.77]),\n",
    "    (\"山东\", [117.1582, 36.8701, 71067.53]),\n",
    "    (\"河南\", [113.4668, 34.6234, 54259.2]),\n",
    "    (\"江苏\", [118.8062, 31.9208, 99631.52]),\n",
    "    (\"安徽\", [117.29, 32.0581, 37113.98]),\n",
    "    (\"湖北\", [114.3896, 30.6628, 45828.31]),\n",
    "    (\"浙江\", [119.5313, 29.8773, 62351.74]),\n",
    "    (\"福建\", [119.4543, 25.9222, 42395]),\n",
    "    (\"江西\", [116.0046, 28.6633, 24757.5]),\n",
    "    (\"湖南\", [113.0823, 28.2568, 39752.12]),\n",
    "    (\"贵州\", [106.6992, 26.7682, 16769.34]),\n",
    "    (\"广西\", [108.479, 23.1152, 21237.14]),\n",
    "    (\"海南\", [110.3893, 19.8516, 5308.93]),\n",
    "    (\"上海\", [121.4648, 31.2891, 38155.32]),\n",
    "    (\"北京\", [116.3333, 39.9333, 35371.28]),\n",
    "    (\"云南\", [102.1666, 24.3833, 23223.75]),\n",
    "    (\"广东\", [112.9589, 22.4333, 107671.07]),\n",
    "]\n",
    "\n",
    "c = (\n",
    "    Map3D(init_opts=opts.InitOpts(width=\"1800px\", height=\"1200px\"))\n",
    "    .add_schema(\n",
    "        itemstyle_opts=opts.ItemStyleOpts(\n",
    "            color=\"rgb(5,101,123)\",\n",
    "            opacity=1,\n",
    "            border_width=0.8,\n",
    "            border_color=\"rgb(62,215,213)\",\n",
    "        ),\n",
    "        map3d_label=opts.Map3DLabelOpts(\n",
    "            is_show=False,\n",
    "            formatter=JsCode(\"function(data){return data.name + \" \" + data.value[2];}\"),\n",
    "        ),\n",
    "        emphasis_label_opts=opts.LabelOpts(\n",
    "            is_show=False,\n",
    "            color=\"#fff\",\n",
    "            font_size=10,\n",
    "            background_color=\"rgba(0,23,11,0)\",\n",
    "        ),\n",
    "        light_opts=opts.Map3DLightOpts(\n",
    "            main_color=\"#fff\",\n",
    "            main_intensity=1.2,\n",
    "            main_shadow_quality=\"high\",\n",
    "            is_main_shadow=False,\n",
    "            main_beta=10,\n",
    "            ambient_intensity=0.3,\n",
    "        ),\n",
    "    )\n",
    "    .add(\n",
    "        series_name=\"数据（经度、纬度、2019GDP）\",\n",
    "        data_pair=example_data,\n",
    "        type_=ChartType.BAR3D,\n",
    "        bar_size=1,\n",
    "        shading=\"lambert\",\n",
    "        label_opts=opts.LabelOpts(\n",
    "            is_show=False,\n",
    "            formatter=JsCode(\"function(data){return data.name + ' ' + data.value[2];}\"),\n",
    "        ),\n",
    "    )\n",
    "    .set_global_opts(title_opts=opts.TitleOpts(title=\"城市数据\"))\n",
    "    .render(\"2019年全国各地区GDP带有数据展示的炫酷D地图.html\")\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
